home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #15
/
Monster Media Number 15 (Monster Media)(July 1996).ISO
/
pcboard
/
cbfree13.zip
/
CB.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-06-08
|
35KB
|
1,847 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean BOOLEAN007
Boolean BOOLEAN008
Boolean BOOLEAN009
Boolean BOOLEAN010
Boolean BOOLEAN011
Boolean BOOLEAN012
Boolean BOOLEAN013
Boolean BOOLEAN014
Boolean BOOLEAN015
Boolean BOOLEAN016
Boolean BOOLEAN017
Boolean BOOLEAN018
Boolean BOOLEAN019
Boolean BOOLEAN020
Boolean BOOLEAN021
Boolean BOOLEAN022
Boolean BOOLEAN023
Boolean BOOLEAN024
Boolean BOOLEAN025
Boolean BOOLEAN026
DWord DWORD001
Integer INTEGER003
Integer INTEGER004
Real REAL001
Real REAL002
Real REAL003
Real REAL004
Real REAL005
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String STRING031
String STRING032
String STRING033
String STRING034
String STRING035
String STRING036
String STRING037
Time TIME001
Time TIME002
Time TIME003
Time TIME004
Int INT001
Int INT002
Int INT003
Int INT004
Int INT005
Int INT006
Int INT007
Int INT008
Int INT009
Int INT010
Int INT011
Int INT012
Int INT013
Int INT014
Int INT015
Int INT016
Int INT017
Int INT018
Int INT019
Int INT020
Int INT021
;------------------------------------------------------------------------------
Log "*** User Entered Callback Program ***", 0
BOOLEAN003 = 1
FAppend 7, PPEPath() + "NODE" + String(PcbNode()) + ".LOG", 1, 2
FPutLn 7, ""
FPutLn 7, "*********** Starting up CallBack ************"
Gosub LABEL021
GetUser
FPutLn 7, "Callback started for user: ", U_Name()
FPutLn 7, " Date: ", Date()
FPutLn 7, " Time: ", Time()
FPutLn 7, " User's Security Level: ", U_Sec
FPutLn 7, " User's Expiration Date: ", U_ExpDate
FPut 7, " Verification Using: "
Select Case (STRING022)
Case "BOTH"
FPutLn 7, "Username & Password Check"
Case "USER"
FPutLn 7, "Username Check"
Case "PASS"
FPutLn 7, "Password Check"
End Select
Gosub LABEL024
Gosub LABEL025
Cls
DispFile PPEPath() + "WELCOME", 1 + 4
STRING016 = " @X0EC@X0F)@X02ontinue Callback process, @X0EE@X0F)@X02xit Callback@X0F"
STRING015 = "C"
InputStr STRING016, STRING015, 15, 1, "CE", 2 + 4 + 256 + 8
If (STRING015 == "E") Then
FPutLn 7, "**-->> User aborted callback"
BOOLEAN003 = 1
Else
If (BOOLEAN017 && BOOLEAN018) Then
DispFile PPEPath() + "PFORM1", 1 + 4 + 2
STRING015 = "1"
Newline
STRING016 = " @X0EPlease make your selection"
InputStr STRING016, STRING015, 15, 1, "12", 2 + 4 + 256
If (STRING015 == "1") Then
INT020 = 1
FPutLn 7, " Calling format selected: US"
Else
INT020 = 2
FPutLn 7, " Calling format selected: INTL"
Endif
DispFile PPEPath() + "PFORM2", 1 + 4 + 2
STRING015 = "1"
Newline
STRING016 = " @X0EPlease make your selection"
InputStr STRING016, STRING015, 15, 1, "12", 2 + 4 + 256
If (STRING015 == 2) Then
FPutLn 7, " International Call: TRUE"
BOOLEAN019 = 1
Else
FPutLn 7, " International Call: FALSE"
Endif
Else
If (BOOLEAN017) Then
INT020 = 1
ElseIf (BOOLEAN018) Then
INT020 = 2
Endif
Endif
Gosub LABEL071
If (Exist(PPEPath() + "BAD-NUM.LST")) Gosub LABEL079
Gosub LABEL036
Gosub LABEL039
BOOLEAN002 = 0
Gosub LABEL044
If (BOOLEAN007) Then
Gosub LABEL063
Else
If (BOOLEAN015 && (STRING024 <> "")) Then
If (BOOLEAN016) Then
FPut 7, " Caller ID = User Record: "
If ((STRING024 == STRING009) || (STRING024 == STRING010)) Then
BOOLEAN020 = 1
FPutLn 7, "PHONE NUMBER MATCHES USER RECORD"
STRING014 = U_Pwd
STRING023 = U_Name()
BOOLEAN007 = 1
BOOLEAN003 = 1
Gosub LABEL063
Goto LABEL016
Goto LABEL001
Endif
FPutLn 7, "FALSE"
FPutLn 7, "**-->> Caller ID did NOT match User Record entries"
FPutLn 7, " User's Security Level: ", U_Sec
Log "**-->> Caller ID did NOT match User Record entries", 0
Endif
Endif
:LABEL001
Cls
DispFile PPEPath() + "INST", 1 + 4 + 2
STRING004 = "P"
STRING016 = "@X0EP@X0F)@X02roceed with callback, or @X0EE@X0F)@X02xit back to BBS"
InputStr STRING016, STRING004, 15, 1, "EP", 2 + 4 + 256 + 8
If (STRING004 <> "P") Then
FPutLn 7, "**-->> User aborted callback"
BOOLEAN003 = 1
Else
Cls
PrintLn "@X0ARemember, type @X0A@X0FATA @X0Athen hit the @X0FENTER @X0Akey after your phone rings@X0F....@X07"
PrintLn
Gosub LABEL048
If (OnLocal()) Goto LABEL002
FClose 7
FAppend 7, PPEPath() + "NODE" + String(PcbNode()) + ".LOG", 1, 2
Gosub LABEL051
Goto LABEL003
:LABEL002
FPutLn 7, " Local Test-Modem Command: ", STRING018
:LABEL003
If (BOOLEAN001 || OnLocal()) Then
If (OnLocal()) Goto LABEL004
FPutLn 7, " Modem results: We are CONNECTED!!!..."
Color 14
AnsiPos 2, 18
SPrint "Waiting for line to settle down..."
AnsiPos 2, 18
Color 7
Delay 54
CdChkOn
KbdChkOn
Goto LABEL005
:LABEL004
Newline
PrintLn " @X0F*** @X0CThis is a Local Logon Callback @X0F- @X0ENo Phone call made @X0F***@X07"
Newline
Delay 36
:LABEL005
Gosub LABEL053
Gosub LABEL063
Else
FPutLn 7, "**-->> Too many tries exceeded to make callback"
U_Sec = INT006
FPutLn 7, " Security Level set to: " + String(INT006)
PutUser
Cls
Endif
Goto LABEL016
:LABEL006
Select Case (INT020)
Case 1
STRING009 = Mid(STRING009, 1, 3) + "-" + Mid(STRING009, 4, 3) + "-" + Mid(STRING009, 7, 4)
Case 2
STRING004 = "*" + Mid(STRING009, 1, Len(STRING032)) + "-" + Mid(STRING009, Len(STRING032) + 1, Len(STRING033)) + "-" + Mid(STRING009, Len(STRING032) + Len(STRING033) + 1, Len(STRING009) - Len(STRING032) + Len(STRING033))
STRING004 = Trim(STRING004, " ")
STRING009 = STRING004 + Space(24 - Len(STRING004))
End Select
STRING004 = STRING009 + " " + U_Name() + " " + String(Time()) + " " + String(Date()) + " " + "H/V from User Record"
FPutLn 1, STRING004
Return
:LABEL007
Select Case (INT020)
Case 1
STRING010 = Mid(STRING010, 1, 3) + "-" + Mid(STRING010, 4, 3) + "-" + Mid(STRING010, 7, 4)
Case 2
STRING004 = "*" + Mid(STRING010, 1, Len(STRING032)) + "-" + Mid(STRING010, Len(STRING032) + 1, Len(STRING033)) + "-" + Mid(STRING010, Len(STRING032) + Len(STRING033) + 1, Len(STRING010) - Len(STRING032) + Len(STRING033))
STRING004 = Trim(STRING004, " ")
STRING010 = STRING004 + Space(24 - Len(STRING004))
End Select
STRING004 = STRING010 + " " + U_Name() + " " + String(Time()) + " " + String(Date()) + " " + "Data from User Record"
FPutLn 1, STRING004
Return
:LABEL008
STRING004 = StripStr(STRING004, "+")
STRING004 = StripStr(STRING004, "-")
STRING004 = StripStr(STRING004, ")")
STRING004 = StripStr(STRING004, "(")
STRING004 = StripStr(STRING004, " ")
Return
:LABEL009
Select Case (INT020)
Case 1
FOpen 1, PPEPath() + "AREACODE.DAT", 0, 0
Case 2
FOpen 1, PPEPath() + "CNTYCODE.DAT", 0, 0
End Select
:LABEL010
If (BOOLEAN002) Goto LABEL011
FGet 1, STRING004
If (Ferr(1)) Goto LABEL011
Select Case (INT020)
Case 1
If (Mid(STRING004, 1, 3) == STRING011) BOOLEAN002 = 1
If (Mid(STRING004, 1, 3) > STRING011) Goto LABEL011
Case 2
If (Mid(STRING004, 1, 3) == STRING032) BOOLEAN002 = 1
End Select
Goto LABEL010
:LABEL011
FClose 1
Return
:LABEL012
STRING004 = PPEPath() + STRING011 + "XCHNG.DAT"
If (Exist(STRING004)) Goto LABEL013
FPutLn 7, " No Exchange File : ", STRING004
Return
:LABEL013
FPutLn 7, " Searching Exchange File: ", STRING011 + "XCHNG.DAT"
FOpen 1, STRING004, 0, 0
:LABEL014
If (BOOLEAN002) Goto LABEL015
FGet 1, STRING004
If (Ferr(1)) Goto LABEL015
If (Mid(STRING004, 1, 3) == STRING012) BOOLEAN002 = 1
Goto LABEL014
:LABEL015
FClose 1
Return
Endif
Endif
Endif
:LABEL016
If (BOOLEAN003) Goto LABEL017
If (OnLocal()) Then
PrintLn "Local Testing - User stays online"
FPutLn 7, "Local Testing - User stays online"
Gosub LABEL019
Else
Gosub LABEL019
Hangup
Endif
Goto LABEL018
:LABEL017
Gosub LABEL019
:LABEL018
Log "*** User Exited Callback Program ***", 0
DefColor
If (!BOOLEAN001 && !OnLocal()) Then
CdChkOn
KbdChkOn
Endif
End
:LABEL019
FPutLn 7, " User's Expiration Date: ", U_ExpDate
FPutLn 7, "@@@@@@@@@@@ Ending CallBack @@@@@@@@@@@@"
FClose 7
Return
:LABEL020
If (!Exist(PPEPath() + "TRASHCAN.DAT")) Return
FOpen 1, PPEPath() + "TRASHCAN.DAT", 0, 0
While (1) Do
FGet 1, STRING004
If (Ferr(1)) Break
If (Left(STRING004, 1) == "'") Continue
If ((Left(STRING004, 1) == "*") && (INT020 == 1)) Continue
Select Case (INT020)
Case 1
STRING004 = Mid(STRING004, 1, 25)
Case 2
STRING004 = Mid(STRING004, 2, 24)
End Select
If (INT009 == 1) Then
If (Mid(STRING004, 1, 3) == STRING011) Then
PrintLn
PrintLn " @X0F*** @X0CThe Area Code " + STRING011 + " is @X0Fnot allowed @X0Cfor callback@X07"
Newline
FPutLn 7, "**-->> Area Code matches entry in Trashcan"
Delay 54
Goto LABEL016
Endif
Continue
Endif
If (INT009 == 2) Then
If (Mid(STRING004, 5, 3) == STRING012) Then
PrintLn
PrintLn " @X0F*** @X0CThe exchange " + STRING012 + " is @X0Fnot allowed @X0Cfor callback@X07"
Newline
FPutLn 7, "**-->> Exchange matches entry in Trashcan"
Delay 54
Goto LABEL016
Endif
Continue
Endif
If (INT009 == 3) Then
If (Mid(STRING004, 9, 4) == STRING013) Then
PrintLn
PrintLn " @X0F*** @X0CThe last 4 number " + STRING013 + " are @X0Fnot allowed @X0Cfor callback@X07"
Newline
FPutLn 7, "**-->> Last 4 Numbers matches entry in Trashcan"
Delay 54
Goto LABEL016
Endif
Continue
Endif
If (INT009 == 4) Then
If (RTrim(Mid(STRING004, 1, 3), " ") == STRING032) Then
PrintLn
PrintLn " @X0F*** @X0CThe country code " + STRING032 + " is @X0Fnot allowed @X0Cfor callback@X07"
Newline
FPutLn 7, "**-->> Exchange matches entry in Trashcan"
Delay 54
Goto LABEL016
Endif
Continue
Endif
If (INT009 == 5) Then
If (RTrim(Mid(STRING004, 5, 4), " ") == STRING033) Then
PrintLn
PrintLn " @X0F*** @X0CThe city code " + STRING033 + " is @X0Fnot allowed @X0Cfor callback@X07"
Newline
FPutLn 7, "**-->> Exchange matches entry in Trashcan"
Delay 54
Goto LABEL016
Endif
Continue
Endif
If (INT009 == 6) Then
If (RTrim(Mid(STRING004, 10, 8), " ") == STRING034) Then
PrintLn
PrintLn " @X0F*** @X0CThe last numbers " + STRING034 + " are @X0Fnot allowed @X0Cfor callback@X07"
Newline
FPutLn 7, "**-->> Exchange matches entry in Trashcan"
Delay 54
Goto LABEL016
Endif
Endif
EndWhile
FClose 1
Return
:LABEL021
Newline
PrintLn "@X03Reading configuration.....@X07"
If (Exist(PPEPath() + "CB" + String(PcbNode()) + ".CFG")) Then
FPutLn 7, " Using configuration file: ", "CB" + String(PcbNode()) + ".CFG"
FOpen 1, PPEPath() + "CB" + String(PcbNode()) + ".CFG", 0, 0
Else
FOpen 1, PPEPath() + "CB.CFG", 0, 0
If (Ferr(1)) Then
Newline
PrintLn "Configuration file (CB.CFG) NOT FOUND!!....Program Aborting"
Newline
FPutLn 7, "**-->> Configuration File Not Found!!!! - CB.CFG - Program Aborted"
Wait
Goto LABEL016
Endif
FPutLn 7, " Using configuration file: CB.CFG"
Endif
INT015 = 1
While (1) Do
If (INT015 > 26) Break
FGet 1, STRING004
STRING004 = Trim(STRING004, " ")
If (Ferr(1) && (INT015 < 26)) Then
FPutLn 7, "##### CONFIGURATION FILE DOES NOT CONTAIN 26 ENTRIES #####"
Goto LABEL016
Endif
If ((Left(STRING004, 1) == "#") || (Left(STRING004, 1) == "'")) Continue
Select Case (INT015)
Case 1
INT007 = ToInt(STRING004)
Case 2
Tokenize STRING004
STRING022 = Upper(GetToken())
INT008 = ToInt(GetToken())
Case 3
REAL001 = ToReal(STRING004)
Case 4
STRING007 = Upper(STRING004)
Case 5
INT012 = ToInt(STRING004)
Case 6
INT013 = ToInt(STRING004)
Case 7
STRING019 = STRING004
Case 8
STRING020 = STRING004
Case 9
Tokenize STRING004
TIME001 = GetToken()
TIME002 = GetToken()
Case 10
Tokenize STRING004
If (InStr(STRING004, "DISABLED")) Goto LABEL022
TIME003 = GetToken()
TIME004 = GetToken()
Goto LABEL023
:LABEL022
BOOLEAN025 = 1
:LABEL023
Case 11
If (STRING004 <> "") Then
Tokenize STRING004
DWORD001 = ToInteger(GetToken())
STRING021 = GetToken()
Endif
Case 12
If (Upper(STRING004) == "TRUE") BOOLEAN011 = 1
Case 13
If (Upper(STRING004) == "TRUE") BOOLEAN012 = 1
Case 14
If (Upper(STRING004) == "TRUE") BOOLEAN013 = 1
Case 15
If (Upper(STRING004) == "TRUE") BOOLEAN014 = 1
Case 16
REAL002 = ToReal(STRING004)
Case 17
REAL003 = ToReal(STRING004)
Case 18
REAL004 = ToReal(STRING004)
Case 19
STRING004 = ReplaceStr(STRING004, " ", "_")
Tokenize STRING004
STRING005 = Upper(GetToken())
Select Case (STRING005)
Case "TRUE"
BOOLEAN015 = 1
STRING005 = Upper(GetToken())
If (STRING005 == "TRUE") BOOLEAN016 = 1
STRING035 = Upper(GetToken())
STRING035 = ReplaceStr(STRING035, "_", " ")
STRING036 = GetToken()
STRING005 = Upper(GetToken())
If (STRING005 == "H") BOOLEAN023 = 1
STRING005 = Upper(GetToken())
Case "TRUE"
BOOLEAN026 = 1
STRING037 = Upper(GetToken())
End Select
Case 20
STRING025 = STRING004
Case 21
Tokenize STRING004
STRING026 = GetToken()
STRING027 = GetToken()
STRING028 = Upper(GetToken())
Case 22
Tokenize STRING004
STRING029 = GetToken()
STRING030 = GetToken()
Case 23
STRING031 = Upper(STRING004)
Case 24
Tokenize STRING004
INT001 = ToInt(GetToken())
INT002 = ToInt(GetToken())
Case 25
Tokenize STRING004
STRING005 = Upper(GetToken())
If ((STRING005 == "US") || (STRING005 == "BOTH")) BOOLEAN017 = 1
If ((STRING005 == "INTL") || (STRING005 == "BOTH")) Then
BOOLEAN018 = 1
STRING005 = Upper(GetToken())
If (STRING005 == "TRUE") BOOLEAN022 = 1
Endif
Case 26
If (Upper(STRING004) <> "FALSE") BOOLEAN021 = 1
End Select
Inc INT015
EndWhile
FClose 1
Return
:LABEL024
If (U_Sec > INT007) Then
PrintLn
PrintLn "@X4FSecurity Level Too High@X0F....@X0EReturning to the BBS"
Newline
FPutLn 7, "**-->> Security Level too high = ", U_Sec
Delay 36
Goto LABEL016
Endif
Return
:LABEL025
STRING005 = PPEPath() + "BAD-NAME.LST"
If (Exist(STRING005)) Then
FPutLn 7, "Checking Username against: BAD-NAME.LST"
FOpen 1, STRING005, 0, 0
While (1) Do
FGet 1, STRING004
If (Ferr(1)) Break
If (Left(STRING004, 1) == "'") Continue
If (Upper(Trim(U_Name(), " ")) == Upper(Trim(STRING004, " "))) Then
DispFile PPEPath() + "BADNAM", 1 + 4 + 2
FPutLn 7, "**-->> Matched name in: BAD-NAME.LST...Exit Callback"
Delay 36
Goto LABEL016
Endif
EndWhile
FPutLn 7, " No match found in: BAD-NAME.LST"
FClose 1
Endif
Return
:LABEL026
Newlines 2
PrintLn " @X0FYou have the following phone numbers in your user record"
Newline
PrintLn " @X0ABusiness/Data Phone Number@X0F: [@X0CD@X0F] - @X02", U_BDPhone
PrintLn " @X0AHome/Voice Phone Number @X0F: [@X0CH@X0F] - @X02", U_HVPhone
If (BOOLEAN011) PrintLn " @X0AUse Other Phone Number @X0F: [@X0CO@X0F]@X03ther"
Newline
If (BOOLEAN011) Then
STRING016 = " Which number do you wish to use for your callback number (D/H/O)"
STRING015 = "D"
InputStr STRING016, STRING015, 14, 1, "DHO", 2 + 4 + 256 + 8
Else
STRING016 = " Which number do you wish to use for your callback number (D/H)"
STRING015 = "D"
InputStr STRING016, STRING015, 14, 1, "DH", 2 + 4 + 256 + 8
Endif
Gosub LABEL081
If (STRING015 <> "O") Then
BOOLEAN024 = 0
If (STRING015 == "D") STRING008 = STRING010
If (STRING015 == "H") STRING008 = STRING009
Select Case (INT020)
Case 1
INT018 = INT001
Case 2
INT018 = INT002
End Select
If (Len(STRING008) <> INT018) Then
Newline
PrintLn " @X0FImproper phone number in user file - @X0CSysOp Notified@X0F!!@X07"
If (STRING015 == "D") FPutLn 7, "**-->> (D) Improper phone number in user file: ", U_BDPhone
If (STRING015 == "H") FPutLn 7, "**-->> (H) Improper phone number in user file: ", U_HVPhone
BOOLEAN024 = 1
STRING008 = ""
Delay 54
Else
BOOLEAN006 = 1
If (STRING015 == "D") FPutLn 7, " Phone number used: Data Number from User Record"
If (STRING015 == "H") FPutLn 7, " Phone number used: Voice Number from User Record"
Endif
If (BOOLEAN006 && (INT020 == 1)) Then
STRING011 = Mid(STRING008, 1, 3)
STRING012 = Mid(STRING008, 4, 3)
STRING013 = Mid(STRING008, 7, 4)
STRING006 = STRING011 + "-" + STRING012 + "-" + STRING013
ElseIf (BOOLEAN006 && (INT020 == 2)) Then
STRING032 = Trim(Mid(STRING008, 1, 3), " ")
STRING033 = Trim(Mid(STRING008, 4, 4), " ")
STRING034 = Trim(Mid(STRING008, 8, 8), " ")
STRING006 = STRING032 + "-" + STRING033 + "-" + STRING034
Endif
Else
FPutLn 7, " Phone number used: User Entered 'OTHER' Phone Number"
Endif
Return
:LABEL027
If (!BOOLEAN006 && (INT020 == 1)) Then
STRING011 = ""
STRING012 = ""
STRING013 = ""
ElseIf (!BOOLEAN006 && (INT020 == 2)) Then
STRING032 = ""
STRING033 = ""
STRING034 = ""
Endif
Select Case (INT020)
Case 1
STRING016 = " @X0APlease enter your Area Code: @X0F"
If (STRING011 == "") Newline
STRING015 = STRING011
INT018 = 3
INT019 = 3
Case 2
STRING016 = "@X0APlease enter your Country Code: @X0F"
If (STRING032 == "") Newline
STRING015 = STRING032
INT018 = 1
INT019 = 3
End Select
While (Len(STRING015) < INT018) Do
STRING015 = ""
InputStr STRING016, STRING015, 15, INT019, Mask_Num(), 2 + 4 + 256
EndWhile
Select Case (INT020)
Case 1
STRING011 = STRING015
FPutLn 7, " Area Code: ", STRING011
INT009 = 1
Case 2
STRING032 = STRING015
FPutLn 7, " Country Code: ", STRING032
INT009 = 4
End Select
Gosub LABEL020
If (BOOLEAN012) Then
Gosub LABEL009
Else
BOOLEAN002 = 1
Endif
If (BOOLEAN002) Goto LABEL028
PrintLn
Select Case (INT020)
Case 1
PrintLn "@X0CArea Code @X0E" + STRING011 + "@X0C Is Not Allowed For Call Back@X07"
FPutLn 7, " Area Code not in .DAT = ", STRING011
Log "** Area Code Not allowed in Callback **", 0
Case 2
PrintLn "@X0CCountry Code @X0E" + STRING032 + "@X0C Is Not Allowed For Call Back@X07"
FPutLn 7, "Country Code not in .DAT = ", STRING032
Log "** Country Code Not allowed in Callback **", 0
End Select
Newline
PrintLn "@X0BInform the sysop if you believe there is a problem, Thanks.@X07"
Delay 36
Goto LABEL016
Goto LABEL029
:LABEL028
BOOLEAN002 = 0
:LABEL029
Select Case (INT020)
Case 1
STRING016 = " @X0AEnter your Exchange: @X0F"
STRING015 = STRING012
INT018 = 3
INT019 = 3
Case 2
STRING016 = " @X0AEnter your City Code: @X0F"
STRING015 = STRING033
INT018 = 1
INT019 = 4
End Select
While (Len(STRING015) < INT018) Do
STRING015 = ""
InputStr STRING016, STRING015, 15, INT019, Mask_Num(), 2 + 4 + 256
EndWhile
Select Case (INT020)
Case 1
STRING012 = STRING015
FPutLn 7, " Exchange: ", STRING012
INT009 = 2
Case 2
STRING033 = STRING015
FPutLn 7, " City Code: ", STRING033
INT009 = 5
End Select
Gosub LABEL020
If ((INT020 == 1) && !BOOLEAN019) Then
If (InStr(STRING019, STRING011) == 0) Then
If (BOOLEAN013) Gosub LABEL012
Goto LABEL030
Endif
BOOLEAN002 = 1
:LABEL030
If (BOOLEAN013) Then
If (BOOLEAN002) Then
BOOLEAN003 = 1
STRING004 = "TRUE"
Goto LABEL031
Endif
BOOLEAN003 = 0
STRING004 = "FALSE"
:LABEL031
FPutLn 7, " Local Call: ", STRING004
Endif
Endif
Select Case (INT020)
Case 1
STRING016 = " @X0AEnter the last 4 digits: @X0F"
STRING015 = STRING013
INT018 = 4
INT019 = 4
Case 2
STRING016 = " @X0AEnter remaining numbers: @X0F"
STRING015 = STRING034
INT018 = 1
INT019 = 8
End Select
While (Len(STRING015) < INT018) Do
STRING015 = ""
InputStr STRING016, STRING015, 15, INT019, Mask_Num(), 2 + 4 + 256
EndWhile
Select Case (INT020)
Case 1
STRING013 = STRING015
FPutLn 7, " Last 4 Numbers: ", STRING013
INT009 = 3
Case 2
STRING034 = STRING015
FPutLn 7, " Last Numbers: ", STRING034
INT009 = 6
End Select
Gosub LABEL020
If ((INT020 == 1) && !BOOLEAN019) Then
If (BOOLEAN013) Goto LABEL032
If (STRING011 <> STRING019) Then
Gosub LABEL035
Else
BOOLEAN003 = 1
FPutLn 7, " Local Call: ALWAYS TRUE AREACODE"
Endif
:LABEL032
ElseIf ((INT020 == 1) && BOOLEAN019) Then
BOOLEAN003 = 0
ElseIf (INT020 == 2) Then
If (BOOLEAN019) Goto LABEL033
Gosub LABEL035
If (BOOLEAN022) Then
PrintLn "@X0ESome countries require a '0' to preceed the phone number to"
PrintLn "make a phone call within the same country. With this in mind..."
STRING016 = "@X0ADoes this call to you, require a '0' to preceed the number@X07"
STRING005 = NoChar()
InputYN STRING016, STRING005, 14
If (STRING005 == YesChar()) STRING033 = "0" + STRING033
Newline
Endif
Goto LABEL034
:LABEL033
BOOLEAN003 = 0
Endif
:LABEL034
Select Case (INT020)
Case 1
STRING008 = STRING011 + STRING012 + STRING013
STRING006 = STRING011 + "-" + STRING012 + "-" + STRING013
Case 2
STRING008 = STRING032 + STRING033 + STRING034
STRING006 = STRING032 + "-" + STRING033 + "-" + STRING034
End Select
FPutLn 7, " Phone Number Entered: ", STRING006
Return
:LABEL035
Newline
STRING016 = " @X0C" + STRING006 + "@X0F - @X0EIs this a Local Phone Call @X0F(@X02Y/N@X0F)"
STRING005 = YesChar()
InputYN STRING016, STRING005, 14
If (STRING005 == YesChar()) Then
BOOLEAN003 = 1
FPutLn 7, " Local Call: TRUE - CHOSEN BY USER"
Else
BOOLEAN003 = 0
FPutLn 7, " Local Call: FALSE - CHOSEN BY USER"
Endif
Newline
Return
:LABEL036
BOOLEAN005 = 0
If (BOOLEAN003) Then
If (TIME002 < TIME001) Then
If ((Time() < TIME001) && (Time() > TIME002)) BOOLEAN005 = 1
Goto LABEL037
Endif
If (TIME002 > TIME001) Then
If ((Time() < TIME001) || (Time() > TIME002)) BOOLEAN005 = 1
Endif
:LABEL037
FPutLn 7, " Local Allowed Start Time: ", TIME001
FPutLn 7, " Local Allowed End Time: ", TIME002
FPutLn 7, " Current time is: ", Time()
Endif
If (!BOOLEAN003 && !BOOLEAN025) Then
If (TIME004 < TIME003) Then
If ((Time() < TIME003) && (Time() > TIME004)) BOOLEAN005 = 1
ElseIf (TIME004 > TIME003) Then
If ((Time() < TIME003) || (Time() > TIME004)) BOOLEAN005 = 1
Endif
FPutLn 7, " LD Allowed Start Time: ", TIME003
FPutLn 7, " LD Allowed End Time: ", TIME004
FPutLn 7, " Current time is: ", Time()
Else
If (!BOOLEAN003 && BOOLEAN025) Then
FPutLn 7, " Long Distance Callback Blocked - ** No Callback performed **"
DispFile PPEPath() + "ldno", 4 + 1 + 2
BOOLEAN003 = 1
Goto LABEL016
Endif
Endif
If (BOOLEAN005) Then
FPutLn 7, " Callback within hours: FALSE - ** No Callback performed **"
If (BOOLEAN003) Then
DispFile PPEPath() + "lcno", 4 + 1 + 2
Goto LABEL038
Endif
DispFile PPEPath() + "ldno", 4 + 1 + 2
:LABEL038
BOOLEAN003 = 1
Goto LABEL016
Endif
FPutLn 7, " Callback within hours: TRUE"
Return
:LABEL039
BOOLEAN002 = 0
If (BOOLEAN003) Then
If (Exist(PPEPath() + "LC-SL.CFG")) Goto LABEL040
Newlines 3
PrintLn "Local Security File MISSING - Inform SysOp Immediately!!"
FPutLn 7, "**-->> Local Security (LC-SL.CFG) File MISSING!!"
Delay 54
Goto LABEL016
:LABEL040
FOpen 1, PPEPath() + "LC-SL.CFG", 0, 0
Else
If (Exist(PPEPath() + "LD-SL.CFG")) Goto LABEL041
Newlines 3
PrintLn "Long Distance Security File MISSING - Inform SysOp Immediately!!"
FPutLn 7, "**-->> Long Distance Security (LD-SL.CFG) File MISSING!!"
Delay 54
Goto LABEL016
:LABEL041
FOpen 1, PPEPath() + "LD-SL.CFG", 0, 0
Endif
While (1) Do
FGet 1, STRING004
If (Ferr(1)) Then
If (BOOLEAN002) Goto LABEL042
Log "*** Cannot find matching security level in ??-SL.CFG", 0
FPutLn 7, "*** Cannot find matching security level in ??-SL.CFG"
Newlines 3
PrintLn "@X0CYour security level was not found by program - @X0FInform SysOp ASAP!!!@X07"
Newlines 2
Wait
BOOLEAN003 = 1
Goto LABEL016
Endif
:LABEL042
If ((Left(STRING004, 1) == "#") || (Left(STRING004, 1) == "'")) Continue
If (U_Sec == ToInt(Mid(STRING004, 1, InStr(STRING004, ";") - 1))) Then
BOOLEAN002 = 1
Tokenize STRING004
STRING015 = GetToken()
INT005 = ToInt(GetToken())
INT006 = ToInt(GetToken())
INT004 = ToInt(GetToken())
INT017 = ToInt(GetToken())
INT003 = ToInt(GetToken())
FPutLn 7, " Verified Sec Level: ", INT005
FPutLn 7, " Failure Sec Level: ", INT006
FPutLn 7, " Expired Sec Level: ", INT004
FPutLn 7, " Time Adjustment: ", INT017
If (INT003 <> 0) Then
FPut 7, " Days till Expired Date: ", INT003, " = ", ToDate(Date() + INT003)
Goto LABEL043
Endif
FPut 7, " Days till Expired Date: ", INT003, " = 00/00/00"
:LABEL043
FPutLn 7, " - (If Callback is successful)"
Break
Continue
Endif
Continue
EndWhile
FClose 1
Return
:LABEL044
BOOLEAN007 = 0
Print "@X02Checking entries in verified log for duplicates: @X0F"
INT015 = 0
Print " "
If (Exist(PPEPath() + "VERIFIED.LOG")) Goto LABEL045
FPutLn 7, "**-->> VERIFIED.LOG is not found"
Return
:LABEL045
FOpen 1, PPEPath() + "VERIFIED.LOG", 0, 0
While (1) Do
FGet 1, STRING004
If (Ferr(1)) Break
Inc INT015
If ((Left(STRING004, 1) == "*") && (INT020 == 1)) Continue
If (!INT015 % 100) Print Chr(8) , Chr(8) , Chr(8) , Chr(8) , Space(4 - Len(INT015)) , INT015
Select Case (INT020)
Case 1
STRING005 = Mid(STRING004, 1, 12)
Case 2
STRING005 = Mid(STRING004, 2, 24)
End Select
Select Case (INT020)
Case 1
If (STRING005 == STRING006) BOOLEAN002 = 1
Case 2
If (RTrim(STRING005, " ") == STRING006) BOOLEAN002 = 1
End Select
If (BOOLEAN002) Then
If (INT020 == 1) Then
INT021 = 14
Goto LABEL046
Endif
If (INT020 == 2) Then
INT021 = 26
Endif
:LABEL046
If ((Mid(STRING004, INT021, Len(Trim(U_Name(), " "))) == Trim(U_Name(), " ")) && (Right(Mid(STRING004, INT021, Len(Trim(U_Name(), " ")) + 1), 1) == " ")) Then
If (BOOLEAN014) Then
Newlines 3
DispFile PPEPath() + "AL-VER", 1 + 4 + 2
Log "** User already Verified - Upgraded Security **", 0
FPutLn 7, "**-->> User already verified before"
FPutLn 7, "**-->> Verified entry = ", Mid(STRING004, INT021, Len(U_Name()))
STRING014 = U_Pwd
STRING023 = U_Name()
BOOLEAN004 = 1
Wait
FClose 1
BOOLEAN007 = 1
Break
Goto LABEL047
Endif
Break
Endif
:LABEL047
Newlines 3
DispFile PPEPath() + "DUPNUM", 1 + 4 + 2
Log "** Duplicate Number - Security Not Changed **", 0
FPutLn 7, "~~~~~~Duplicate number found in verified.log~~~~~~ : ", Mid(STRING004, 1, 12)
FPutLn 7, " Duplicate entry info: ", STRING004
Wait
Goto LABEL016
Endif
EndWhile
FClose 1
Return
:LABEL048
Select Case (INT020)
Case 1
If (BOOLEAN003) Then
If (InStr(STRING020, STRING011)) Then
STRING018 = STRING025 + STRING026 + STRING012 + STRING013
Else
STRING018 = STRING025 + STRING026 + STRING008
Endif
Else
If (BOOLEAN019) Then
STRING005 = STRING030 + "1"
Else
STRING005 = STRING029
Endif
STRING018 = STRING025 + STRING026 + STRING005 + STRING008
Endif
Case 2
If (BOOLEAN003) Then
STRING018 = STRING025 + STRING026 + STRING033 + STRING034
Goto LABEL049
Endif
STRING018 = STRING025 + STRING026 + STRING030 + STRING008
End Select
:LABEL049
If (BOOLEAN003) Then
INT011 = INT012
Else
INT011 = INT013
Endif
If (STRING027 <> "") Then
If (STRING028 == "A") Then
STRING018 = STRING018 + STRING027
Goto LABEL050
Endif
If ((STRING028 == "L") && BOOLEAN003) Then
STRING018 = STRING018 + STRING027
Goto LABEL050
Endif
If ((STRING028 == "D") && !BOOLEAN003) Then
STRING018 = STRING018 + STRING027
Endif
Endif
:LABEL050
If (!OnLocal()) FPutLn 7, " Dialing String to Modem: ", STRING018
Return
:LABEL051
CdChkOff
KbdChkOff
KbdFlush
MdmFlush
DtrOff
Delay 18
DispFile PPEPath() + "CALLB", 1 + 2 + 4
Color 15
AnsiPos 19, 7
If (BOOLEAN003) Then
SPrint "TRUE"
Else
SPrint "FALSE"
Endif
AnsiPos 41, 7
SPrint Space(3 - Len(INT011)), INT011
Color 15
INT016 = 0
Gosub LABEL076
While ((REAL001 > 0) && !BOOLEAN001) Do
Gosub LABEL052
Gosub LABEL078
If ((STRING004 == 32) || (STRING004 == Chr(32))) Continue
Color 14
AnsiPos 26, 11
SPrint Mid("AT" + STRING007, 1, 25)
AnsiPos 26, 11
SendModem "AT" + STRING007 + Chr(13)
Delay 18
Color 141
AnsiPos 26, 12
SPrint REAL001, Space(3 - Len(REAL001))
FPutLn 7, " Callback Attempt: Started @ ", String(Time())
INTEGER003 = Time()
STRING017 = ""
Color 3
AnsiPos 26, 13
SPrint STRING006
SendModem STRING018 + Chr(13)
AnsiPos 26, 14
Color 2
SPrint "Waiting..."
AnsiPos 26, 14
While (1) Do
INTEGER004 = Time()
If (INTEGER004 > INTEGER003 + INT011) Then
Dec REAL001
Gosub LABEL075
INT016 = 0
Gosub LABEL076
FPutLn 7, " Modem results: **-->> Callback Timeout...."
Break
Else
Gosub LABEL076
Endif
Gosub LABEL078
If ((STRING004 == 32) || (STRING004 == Chr(32))) Break
INT010 = MGetByte()
Delay 2
If (INT010 <> -1) Then
If ((INT010 <> 10) && (INT010 <> 13)) STRING017 = STRING017 + Chr(INT010)
If (InStr(STRING017, "CONNECT")) Then
STRING017 = STRING017 + Chr(MGetByte())
While (1) Do
INT010 = MGetByte()
If (INT010 == -1) Break
STRING017 = STRING017 + Chr(INT010)
EndWhile
Color 15
AnsiPos 26, 14
If (Len(STRING017) > 45) STRING017 = Mid(STRING017, 1, 45)
SPrint STRING017
AnsiPos 26, 14
BOOLEAN001 = 1
Break
Continue
Endif
If (InStr(STRING017, "BUSY")) Then
Color 15
AnsiPos 26, 14
SPrint STRING017 + Space(20 - Len(STRING017))
AnsiPos 26, 14
SendModem "ATH0" + Chr(13)
Delay 18
INT016 = 0
Gosub LABEL076
Gosub LABEL075
FPutLn 7, " Modem results: Busy...let's try again"
Color 7
REAL001 = REAL001 - REAL002
Break
Continue
Endif
If (InStr(STRING017, "NO DIAL")) Then
Color 15
AnsiPos 26, 14
SPrint STRING017 + Space(20 - Len(STRING017))
AnsiPos 26, 14
Delay 18
INT016 = 0
Gosub LABEL076
Gosub LABEL075
Color 12
FPutLn 7, " Modem results: No Dialtone...let's try again"
Color 7
REAL001 = REAL001 - REAL003
Break
Continue
Endif
If (InStr(STRING017, "RING")) Then
Color 15
AnsiPos 26, 14
SPrint STRING017 + Space(20 - Len(STRING017))
AnsiPos 26, 14
Color 140
AnsiPos 3, 18
SPrint "***** "
Color 15
SPrint "INCOMING CALL - TERMINATE!!! "
Color 140
SPrint "*****"
Color 10
AnsiPos 3, 18
SPrint "Pick up phone, "
Color 15
SPrint "drop DTR <G>, "
Color 10
SPrint "bye bye incoming..."
AnsiPos 3, 18
SendModem "ATH1" + Chr(13)
Delay 54
INT016 = 0
Gosub LABEL076
Gosub LABEL075
Gosub LABEL052
FPutLn 7, " Modem results: Incoming Call...let's try again"
REAL001 = REAL001 - REAL004
Break
Endif
Endif
EndWhile
INT016 = 0
Gosub LABEL076
If (InStr(STRING017, "CONNECT") == 0) Gosub LABEL075
Continue
EndWhile
Return
:LABEL052
CdChkOff
KbdChkOff
KbdFlush
MdmFlush
DtrOff
AnsiPos 26, 9
Color 12
SPrint "Active "
AnsiPos 26, 9
Delay 72
Color 15
SPrint "Done "
AnsiPos 26, 10
DtrOn
Color 12
SPrint "Active "
AnsiPos 26, 10
Delay 9
Color 15
SPrint "Done "
Return
:LABEL053
STRING014 = ""
STRING023 = ""
BOOLEAN007 = 0
INT014 = 1
Cls
If (STRING022 == "BOTH") DispFile PPEPath() + "getpwun", 4 + 1 + 2
If (STRING022 == "USER") DispFile PPEPath() + "getun", 4 + 1 + 2
If (STRING022 == "PASS") DispFile PPEPath() + "getpw", 4 + 1 + 2
KbdFlush
MdmFlush
If ((STRING022 == "BOTH") || (STRING022 == "USER")) Then
:LABEL054
If (BOOLEAN010) Goto LABEL056
If (INT014 > INT008) Goto LABEL060
STRING016 = " Enter Username"
InputStr STRING016, STRING023, 14, 25, Mask_Ascii(), 8 + 2 + 256
If (STRING023 <> U_Name()) Then
Print " @X0CIncorrect Username@X0F!!!...@X0BPlease try again. @X0C[@X0E"
PrintLn INT008 - INT014, "@X0C] @X0Btries remaining"
FPutLn 7, " Incorrect Username: " + STRING023
Inc INT014
STRING023 = ""
Delay 18
Goto LABEL055
Endif
BOOLEAN010 = 1
If (STRING022 <> "BOTH") Then
BOOLEAN007 = 1
Goto LABEL056
Endif
:LABEL055
Goto LABEL054
Endif
:LABEL056
If ((STRING022 == "BOTH") || (STRING022 == "PASS")) Then
:LABEL057
If (BOOLEAN009) Goto LABEL059
If (INT014 > INT008) Goto LABEL060
STRING016 = " Enter Password"
InputStr STRING016, STRING014, 14, 12, Mask_Ascii(), 8 + 1 + 2 + 256
If (STRING014 <> U_Pwd) Then
Print " @X0CIncorrect Password@X0F!!!...@X0BPlease try again. @X0C[@X0E"
PrintLn INT008 - INT014, "@X0C] @X0Btries remaining"
FPutLn 7, " Incorrect Password: " + STRING014
Inc INT014
STRING014 = ""
Delay 18
Goto LABEL058
Endif
BOOLEAN009 = 1
BOOLEAN007 = 1
Goto LABEL059
:LABEL058
Goto LABEL057
Endif
:LABEL059
Return
:LABEL060
Newline
DispFile PPEPath() + "FAL-SEC", 1 + 4 + 2
FPutLn 7, "**-->> Excessive Verification Attempts - Disconnecting User"
Log "** Excessive Verification Attempts - Security Level Not Changed **", 0
U_Sec = INT006
FPutLn 7, " Security Level set to: " + String(INT006)
PutUser
Delay 54
Gosub LABEL019
If (OnLocal()) Goto LABEL061
Hangup
Goto LABEL062
:LABEL061
PrintLn "Local Testing - User stays online"
FPutLn 7, "Local Testing - User stays online"
:LABEL062
End
:LABEL063
If (BOOLEAN007) Then
If ((U_Sec < INT005) || OnLocal()) Then
U_Sec = INT005
U_ExpSec = INT004
If (INT003 <> 0) Then
U_ExpDate = Date() + INT003
Goto LABEL064
Endif
U_ExpDate = 0
:LABEL064
If (STRING031 <> "") Gosub LABEL082
PutUser
AdjTime INT017
If (STRING021 <> "") Message DWORD001, "SYSOP", "CB-FREE Callback PPE", Mixed(U_Name()) + " - Completed Callback", "R", 0, 0, 0, STRING021
Cls
If (BOOLEAN020 && Exist(PPEPath() + "CID-USR")) DispFile PPEPath() + "CID-USR", 1 + 4 + 2
Newline
If (Exist(PPEPath() + "PAS-SEC")) DispFile PPEPath() + "PAS-SEC", 1 + 4 + 2
If (BOOLEAN004) Goto LABEL066
For INT014 = 1 To 10
FAppend 1, PPEPath() + "VERIFIED.LOG", 1, 2
If (Ferr(1)) Then
Color 15
Newline
SPrintLn "Error opening VERIFIED.LOG - Pause 1 Sec and try again"
FPutLn 7, "**-->> Error opening VERIFIED.LOG - Pause 1 Sec - try again"
Color 7
Delay 18
Continue
Endif
If (INT020 == 2) STRING006 = "*" + STRING006 + Space(23 - Len(STRING006))
STRING004 = STRING006 + " " + U_Name() + " " + String(Time()) + " " + String(Date())
If (BOOLEAN019) Then
STRING004 = STRING004 + "International"
Goto LABEL065
Endif
If (BOOLEAN003) Then
STRING004 = STRING004 + " Local"
Goto LABEL065
Endif
STRING004 = STRING004 + " Long Distance"
:LABEL065
If ((STRING024 <> "") && BOOLEAN015) STRING004 = STRING004 + " - CID # Used"
FPutLn 1, STRING004
STRING006 = StripStr(STRING006, "-")
If (STRING006 <> STRING009) Gosub LABEL006
If ((STRING006 <> STRING010) && (STRING010 <> STRING009)) Gosub LABEL007
FClose 1
Break
Next
:LABEL066
If (BOOLEAN004) Goto LABEL068
If (STRING022 == "BOTH") Then
FPutLn 7, "Matching Username/Password entered, Raise Security Level to " + String(INT005)
Goto LABEL067
Endif
If (STRING022 == "PASS") Then
FPutLn 7, "Matching Password entered, Raise Security Level to " + String(INT005)
Goto LABEL067
Endif
If (STRING022 == "USER") Then
FPutLn 7, "Matching Username entered, Raise Security Level to " + String(INT005)
Endif
:LABEL067
Goto LABEL069
:LABEL068
FPutLn 7, "Already Verified, Raise Security Level to " + String(INT005)
:LABEL069
Log "%%% Users Security Upgraded %%%", 0
Goto LABEL070
Endif
Cls
Newlines 6
PrintLn "@X0ACallback completed@X0F....@X0ESecurity Level too High@X0F...@X0CSecurity not adjusted@X07"
FPutLn 7, "**-->> Security Level not changed. Current Security Level too High"
Endif
:LABEL070
If ((!BOOLEAN003 && !BOOLEAN004) && BOOLEAN021) Then
Newline
PrintLn "@X0CLong Distance Callback. .......@X0EDisconnecting now......"
PrintLn "@X0FPlease call us right back to enjoy your increased access@X07"
FPutLn 7, "Long Distance Call....Hanging up the phone"
Log "** Long Distance - Disconnecting now... **", 0
Delay 54
Goto LABEL016
Endif
If ((!BOOLEAN003 && !BOOLEAN004) && !BOOLEAN021) Then
FPutLn 7, "Long Distance Callback.............User REMAINS online!"
FPutLn 7, "Configuration Setting #26 (FALSE) allows this to occur!"
Log "** Long Distance Callback - User REMAINS online!! **", 0
Endif
BOOLEAN003 = 1
Return
:LABEL071
Newline
STRING015 = ""
If (BOOLEAN015 && (INT020 == 1)) Gosub LABEL073
FPutLn 7, " User's Security Level: ", U_Sec
FPutLn 7, " RAW User Rec. Data Phone: ", U_BDPhone
FPutLn 7, " RAW User Rec. Home Phone: ", U_HVPhone
While (1) Do
BOOLEAN006 = 0
If (STRING015 <> "R") Then
If ((((U_BDPhone <> "") || (U_HVPhone <> "")) || (U_BDPhone <> Space(Len(U_BDPhone)))) || (U_HVPhone <> Space(Len(U_HVPhone)))) Then
If (((STRING024 == "") || !BOOLEAN015) || (INT020 <> 1)) Then
Gosub LABEL026
Goto LABEL072
Endif
Gosub LABEL081
STRING004 = STRING024
Gosub LABEL008
FPutLn 7, " Caller ID information: ", STRING004
STRING024 = STRING004
STRING011 = Mid(STRING004, 1, 3)
STRING012 = Mid(STRING004, 4, 3)
STRING013 = Mid(STRING004, 7, 4)
STRING006 = STRING011 + "-" + STRING012 + "-" + STRING013
BOOLEAN006 = 1
FPutLn 7, " Phone number used: Caller ID"
Endif
Endif
:LABEL072
Gosub LABEL027
If (((Exist(PPEPath() + "CIDNFO") && (STRING024 <> "")) && BOOLEAN015) && BOOLEAN016) DispFile PPEPath() + "CIDNFO", 1 + 2 + 4
Newline
STRING015 = "C"
PrintLn "@X0BPhone number used for Callback: @X1F", STRING006, "@X07"
Newline
If (((STRING024 <> "") && BOOLEAN015) || BOOLEAN006) Then
STRING016 = "@X0EC@X0F)@X02ontinue callback process, @X0EE@X0F)@X02xit Callback@X0F"
InputStr STRING016, STRING015, 11, 1, "CE", 8 + 2 + 4 + 256
Else
STRING016 = "@X0ER@X0F)@X02e-Enter Phone Number or @X0EC@X0F)@X02ontinue callback process, @X0EE@X0F)@X02xit Callback@X0F"
InputStr STRING016, STRING015, 11, 1, "CER", 8 + 2 + 4 + 256
Endif
Select Case (STRING015)
Case "E"
FPutLn 7, "**-->> User aborted callback"
BOOLEAN003 = 1
Goto LABEL016
Case "R"
FPutLn 7, "#### User choose to RE-ENTER their phone number"
If (BOOLEAN024) STRING015 = ""
Continue
Case Else
Break
End Select
If (STRING015 == "C") Break
EndWhile
Newline
Return
:LABEL073
STRING024 = Trim(Upper(CallId()), " ")
FPutLn 7, " RAW CID information: ", STRING024
If (InStr(STRING024, STRING037) && BOOLEAN026) Then
DispFile PPEPath() + "NOBLOCK", 1 + 4 + 2
FPutLn 7, "**-->> Blocked CID Info: User has CID Blocked - Exiting PPE"
Delay 36
BOOLEAN003 = 1
Goto LABEL016
Endif
STRING004 = STRING024
If (STRING035 == "") Then
INT014 = 999
Else
INT014 = InStr(STRING004, STRING035)
Endif
If (INT014) Then
If (INT014 == 999) INT014 = 1
INT014 = INT014 + Len(STRING035)
STRING004 = Trim(Mid(STRING004, INT014, Len(STRING004) - INT014 - 1), " ")
If (InStr(STRING004, " ") <> 0) STRING004 = Mid(STRING004, 1, InStr(STRING004, " ") - 1)
REAL005 = ToReal(STRING004)
If (REAL005 > 0) Then
If (BOOLEAN023) Gosub LABEL074
Else
STRING004 = "0"
Endif
If (STRING004 == "0") Then
STRING024 = ""
Else
STRING024 = STRING004
If (Len(STRING024) == 7) STRING024 = STRING036 + STRING024
Endif
Else
STRING024 = ""
Endif
Return
:LABEL074
INT015 = 3
STRING005 = ""
INT019 = S2I(Mid(STRING004, INT015, 2), 16)
While (INT019 > 0) Do
INT015 = INT015 + 2
STRING005 = STRING005 + Chr(S2I(Mid(STRING004, INT015, 2), 16))
Dec INT019
EndWhile
STRING004 = STRING005
Return
:LABEL075
AnsiPos 26, 9
SPrint Space(45)
AnsiPos 26, 10
SPrint Space(45)
AnsiPos 26, 11
SPrint Space(45)
AnsiPos 26, 12
SPrint Space(45)
AnsiPos 26, 13
SPrint Space(45)
AnsiPos 26, 14
SPrint Space(45)
AnsiPos 2, 18
SPrint Space(60)
AnsiPos 2, 19
SPrint Space(60)
AnsiPos 26, 9
Return
:LABEL076
If ((INTEGER004 - INTEGER003 >= INT016 + 1) || (INT016 == 0)) Then
If (INT016 == 0) Then
INT016 = 1
Goto LABEL077
Endif
INT016 = INTEGER004 - INTEGER003
:LABEL077
Color 15
AnsiPos 66, 7
SPrint Space(3 - Len(INT016)), INT016
Endif
Return
:LABEL078
STRING004 = KInkey()
Select Case (STRING004)
Case 13, Chr(13)
KbdChkOn
KbdFlush
MdmFlush
CdChkOn
Color 15
AnsiPos 3, 18
SPrint "**-->>"
Color 12
SPrint " SysOp hit "
Color 15
SPrint "ENTER "
Color 12
SPrint "key to abort callback"
AnsiPos 3, 18
FPutLn 7, "**-->> SysOp hit ENTER key to abort callback"
Delay 36
AnsiPos 1, 21
Goto LABEL016
Case 32, Chr(32)
KbdFlush
MdmFlush
Color 15
AnsiPos 3, 18
SPrint "**-->>"
Color 10
SPrint " SysOp hit "
Color 15
SPrint "SPACE BAR "
Color 10
SPrint "to recycle callback"
AnsiPos 3, 18
FPutLn 7, "**-->> SysOp hit SPACE BAR to recycle callback"
BOOLEAN008 = 1
Color 15
INT016 = 0
Gosub LABEL076
Delay 18
Gosub LABEL075
End Select
Return
:LABEL079
BOOLEAN002 = 0
INT014 = 0
FOpen 2, PPEPath() + "BAD-NUM.LST", 0, 0
FPutLn 7, " Checking Number against: BAD-NUM.LST"
While (1) Do
FGet 2, STRING005
If (Ferr(2)) Break
If ((Left(STRING005, 1) == "#") || (Left(STRING005, 1) == "'")) Continue
If ((INT020 == 1) && (Left(STRING005, 1) == "*")) Continue
STRING005 = RTrim(Mid(STRING005, 1, 25), " ")
Select Case (INT020)
Case 1
INT014 = InStr(STRING005, "?")
Select Case (INT014)
Case 1
If (Mid(STRING005, 4, 7) == STRING012 + STRING013) BOOLEAN002 = 1
Case 4
If ((Mid(STRING005, 1, 3) == STRING011) && (Mid(STRING005, 7, 4) == STRING013)) BOOLEAN002 = 1
Case 7
If (Mid(STRING005, 1, 6) == STRING011 + STRING012) BOOLEAN002 = 1
Case Else
If (STRING005 == STRING008) BOOLEAN002 = 1
End Select
Case 2
STRING005 = Mid(STRING005, 2, 24)
INT014 = InStr(STRING005, "?")
If (INT014 == 1) Then
If (RTrim(Mid(STRING005, 4, 12), " ") == STRING033 + STRING034) BOOLEAN002 = 1
Goto LABEL080
Endif
If (INT014 == 4) Then
If ((RTrim(Mid(STRING005, 1, 3), " ") == STRING033) && (Mid(STRING005, 8, 8) == STRING034)) BOOLEAN002 = 1
Goto LABEL080
Endif
If (INT014 == 8) Then
If (RTrim(Mid(STRING005, 1, 7), " ") == STRING032 + STRING033) BOOLEAN002 = 1
Goto LABEL080
Endif
If (STRING005 == STRING008) BOOLEAN002 = 1
End Select
:LABEL080
If (BOOLEAN002) Then
DispFile PPEPath() + "BADNUM", 1 + 4 + 2
FPutLn 7, "**-->> Match Found in: BAD-NUM.LST"
Newline
Wait
Goto LABEL016
Endif
EndWhile
FPutLn 7, " No match found in: BAD-NUM.LST"
FClose 2
Return
:LABEL081
STRING010 = U_BDPhone
STRING004 = STRING010
Gosub LABEL008
STRING010 = STRING004
STRING009 = U_HVPhone
STRING004 = STRING009
Gosub LABEL008
STRING009 = STRING004
Return
:LABEL082
If (INT020 == 1) Then
STRING005 = STRING011 + "-" + STRING012 + "-" + STRING013
Else
STRING005 = STRING008
Endif
Select Case (STRING031)
Case "COMMENT"
If ((U_Cmnt1 == "") || (U_Cmnt1 == Space(Len(U_Cmnt1)))) Then
U_Cmnt1 = String(Date()) + " " + String(Time()) + " " + STRING005
ElseIf ((U_Cmnt2 == "") || (U_Cmnt2 == Space(Len(U_Cmnt2)))) Then
U_Cmnt2 = String(Date()) + " " + String(Time()) + " " + STRING005
Else
FPutLn 7, "**-->> Both Comment Fields Used - Unable to write info"
Endif
Case "COMMENT1"
U_Cmnt1 = String(Date()) + " " + String(Time()) + " " + STRING005
Case "COMMENT2"
U_Cmnt2 = String(Date()) + " " + String(Time()) + " " + STRING005
Case "NOTES"
If (Psa(6)) Then
If ((Len(U_Notes(0)) < 30) || (U_Notes(0) == Space(Len(U_Notes(0))))) Then
U_Notes(0) = Trim(U_Notes(0), " ") + String(Date()) + " " + String(Time()) + " " + STRING005
Goto LABEL083
Endif
If ((Len(U_Notes(1)) < 30) || (U_Notes(1) == Space(Len(U_Notes(1))))) Then
U_Notes(1) = Trim(U_Notes(1), " ") + String(Date()) + " " + String(Time()) + " " + STRING005
Goto LABEL083
Endif
If ((Len(U_Notes(2)) < 30) || (U_Notes(2) == Space(Len(U_Notes(2))))) Then
U_Notes(2) = Trim(U_Notes(2), " ") + String(Date()) + " " + String(Time()) + " " + STRING005
Goto LABEL083
Endif
If ((Len(U_Notes(3)) < 30) || (U_Notes(3) == Space(Len(U_Notes(3))))) Then
U_Notes(3) = Trim(U_Notes(3), " ") + String(Date()) + " " + String(Time()) + " " + STRING005
Goto LABEL083
Endif
If ((Len(U_Notes(4)) < 30) || (U_Notes(4) == Space(Len(U_Notes(4))))) Then
U_Notes(4) = Trim(U_Notes(4), " ") + String(Date()) + " " + String(Time()) + " " + STRING005
Goto LABEL083
Endif
FPutLn 7, "**-->> All NOTES Fields Used - Unable to write info"
:LABEL083
Goto LABEL084
Endif
FPutLn 7, "**-->> NOTES PSA is not installed - See PCB Manual for Installation"
End Select
:LABEL084
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 7 Cls
; 5 Wait
; 37 Color
; 457 Goto
; 341 Let
; 5 Print
; 41 PrintLn
; 322 If
; 20 DispFile
; 11 FOpen
; 3 FAppend
; 12 FClose
; 8 FGet
; 4 FPut
; 123 FPutLn
; 2 Hangup
; 1 GetUser
; 3 PutUser
; 1 DefColor
; 1 AdjTime
; 12 Log
; 13 InputStr
; 2 InputYN
; 55 Gosub
; 33 Return
; 1 DtrOn
; 2 DtrOff
; 3 CdChkOn
; 2 CdChkOff
; 30 Delay
; 4 SendModem
; 4 Inc
; 2 Dec
; 32 Newline
; 8 Newlines
; 10 Tokenize
; 3 KbdChkOn
; 2 KbdChkOff
; 40 AnsiPos
; 1 Message
; 39 SPrint
; 1 SPrintLn
; 5 KbdFlush
; 5 MdmFlush
;
;
; ■ Functions used :
;
; 2 -
; 1 %
; 324 +
; 23 -
; 204 ==
; 31 <>
; 17 <
; 1 <=
; 16 >
; 3 >=
; 258 !
; 40 &&
; 31 ||
; 51 Len(
; 20 Upper()
; 56 Mid()
; 11 Left()
; 1 Right()
; 27 Space()
; 10 Ferr()
; 16 Chr()
; 15 InStr()
; 8 RTrim()
; 18 Trim()
; 15 Date()
; 26 Time()
; 13 U_Name()
; 1 NoChar()
; 3 YesChar()
; 36 String()
; 3 Mask_Num()
; 2 Mask_Ascii()
; 43 PPEPath()
; 5 PcbNode()
; 8 OnLocal()
; 30 GetToken()
; 1 CallId()
; 11 Exist()
; 2 S2I()
; 1 Psa()
; 1 KInkey()
; 3 MGetByte()
; 2 ReplaceStr()
; 6 StripStr()
; 1 ToDate()
; 1 ToInteger()
; 5 ToReal()
; 12 ToInt()
; 1 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WABMH
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; A - Adjust online time remaining ■ 5
; Program modify the amount of online time remaining, this may
; be a way to bypass time limits
; ■ Search for : ADJTIME
;
; B - Brute hangup ■ 1
; Program hangup without notification. This may be a good way to
; disconnect a user, but if used randomly, may be very nasty
; ■ Search for : HANGUP, DTROFF
;
; M - Send text to modem only ■ 4
; Some informations are sent only to the modem, not to the local
; screen, this is a well known way to make stealth backdoors, Check!
; ■ Search for : SENDMODEM, MPRINT, MPRINTLN
;
; H - Read Password or Password History ■ 5
; Program is reading the user's password or last password history
; This may be ok for a password manager, but it is very suspect. Check!
; ■ Search for : U_PWDHIST, U_PWD
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 1 For/Next
; 14 While/EndWhile
; 126 If/Then or If/Then/Else
; 25 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------